package erik.util;

public interface ListIterator<T> extends Iterator<T> {
	/**
	 * Tests if there are more items in this collection when iterating in reverse.
	 * @return true if there are more items in the collection when traversing in reverse.
	 */
	boolean hasPrevious();
	
	/**
	 * Obtains the previous item in the collection.
	 * @return the previous item in the collection when traversing in reverse.
	 */
	T previous();
	
	/**
	 * Remove the last item returned by next or previous.
	 * Can only be called once after {@link #next()} or {@link #previous()}.
	 */
	void remove();
}
